﻿using System;
using System.Collections.Generic;
using NHibernate.Validator.Constraints;

namespace DataStore.Domain
{
    /// <summary>
    /// Publications issued at stated intervals.
    /// </summary>
    [Serializable]
    public class Journal : CatalogItem
    {
        /// <summary>
        /// A journal name. Abbreviations are provided for many journals.
        /// </summary>
        /// <value>The journal.</value>
        [NotNullNotEmpty]
        public virtual string JournalName { get; set; }
        /// <summary>
        /// The number of a journal, magazine, technical report, or of a work in a series. 
        /// An issue of a journal or magazine is usually identified by its volume and number; 
        /// the organization that issues a technical report usually gives it a number; 
        /// and sometimes books are given numbers in a named series.
        /// </summary>
        /// <value>The number.</value>
        public virtual string IssueNumber { get; set; }
        /// <summary>
        /// Gets or sets the issuer company data.
        /// </summary>
        /// <value>The company data.</value>
        public virtual Company CompanyData { get; set; }
        /// <summary>
        /// Gets or sets the members of the stuff.
        /// </summary>
        /// <value>The stuff.</value>
        public virtual ICollection<Person> Stuff { get; set; }
        /// <summary>
        /// Gets or sets the ISSN.
        /// </summary>
        /// <value>The ISSN.</value>
        public virtual string ISSN { get; set; }
    }
}
